package com.yunxi.service.localService.sto;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.service.IServicePlus;
import com.yunxi.model.sto.StoManage;
import com.yunxi.sto.pojo.StoManageEditVO;
import com.yunxi.sto.pojo.VehicleStockFrozenListVO;
import com.yunxi.sto.pojo.VehicleStockFrozenVO;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 仓库结构管理 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-14
 */
public interface StoManageService extends IServicePlus<StoManage> {
    void delAndReset(List<String> list, Integer isDel,String userId);

    void disabled(List<String> list,String userId)throws Exception;

    void frozenAndReset(List<VehicleStockFrozenVO> list, Integer isFrozen, String userId)throws Exception;

    Object findTreeList() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException;

    PageInfo detail(String storageId, Integer pageNum, Integer pageSize) ;

    String queryStroageByCode(String code);

    /**
     * 根据库位代码查询仓库全名
     * @param storageCode
     * @return
     * @throws Exception
     */
    String getStorageFullName(String storageCode)throws Exception;

    /**
     * 根据仓库代码查询四级仓库名称
     * @param pid
     * @return
     * @throws Exception
     */
    StoManageEditVO getStorageNames(String pid)throws Exception;

    /**
     * 获取所有下级仓库id
     * @param storageId
     * @return
     * @throws Exception
     */
    List<String> getChildStorageId(String storageId)throws Exception;

    List<VehicleStockFrozenListVO> exportFrozenHis()throws Exception;
}
